// cancvas 设置文字
export function canvasTextAutoLine(
  ctx,
  text, //内容
  size,
  align, //对齐
  baseline,
  sytle, //样式
  color,
  x,
  y,
  maxWidth,
  lineHeight //行高
) {
  ctx.font = sytle
  ctx.textAlign = align
  ctx.setFontSize(size)
  ctx.setTextBaseline(baseline)
  ctx.setFillStyle(color)
  let lineWidth = 0
  let lastSubStrIndex = 0
  for (let i = 0; i < text.length; i++) {
    lineWidth += ctx.measureText(text[i]).width
    if (lineWidth > maxWidth) {
      ctx.fillText(text.substring(lastSubStrIndex, i), x, y)
      y += lineHeight
      lineWidth = 0
      lastSubStrIndex = i
    }
    if (i === text.length - 1) {
      ctx.fillText(text.substring(lastSubStrIndex, i + 1), x, y)
    }
  }
}
// 超出省略号显示
export function drawRowtext(ctx, text, pointX, pointY, rowStrnum = 14, lineHeight = 36, rowNum = 2) {
  // rowStrnum：每行显示的文本个数。（每行显示10个文字）
  // lineHeight：行高，即每行的高度。
  // rowNum：显示行数。（如：有多行文本，但只需要显示三行）
  var len = text.length;
  var n = len / rowStrnum;
  var n1 = Math.ceil(n);//向上取整
  ctx.setFillStyle('#666');
  ctx.setTextAlign('left');
  ctx.font = 'normal 500 24px Microsoft JhengHei';
  for (var i = 0; i < n1; i++) {
    if (i < (rowNum - 1)) {
      ctx.fillText(text.slice(i * rowStrnum, ((i + 1) * rowStrnum) + 1), pointX, pointY + i * lineHeight);
    }
    if (i == (rowNum - 1)) {
      if ((i + 1) * rowStrnum > len) {
        ctx.fillText(text.slice(i * rowStrnum, ((i + 1) * rowStrnum) + 1), pointX, pointY + i * lineHeight);
      } else {
        ctx.fillText(text.slice(i * rowStrnum, ((i + 1) * rowStrnum)) + '...', pointX, pointY + i * lineHeight);
      }
    }
  }
  return n * lineHeight;
}
//获取图片地址
export function getImageInfo(src) {
  return new Promise((resolve, reject) => {
    uni.getImageInfo({
      src,
      success: image => {
        resolve(image)
        console.log('获取图片成功', image)
      },
      fail: err => {
        console.log('src :>> ', src);
        reject(err)
        console.log('获取图片失败', err)
      }
    })
  })
}

export function circleImgTwo(ctx, x, y, w, h, r) {
  if (w < 2 * r) r = w / 2
  if (h < 2 * r) r = h / 2
  ctx.beginPath()
  ctx.moveTo(x + r, y)
  ctx.arcTo(x + w, y, x + w, y + h, r)
  ctx.arcTo(x + w, y + h, x, y + h, r)
  ctx.arcTo(x, y + h, x, y, r)
  ctx.arcTo(x, y, x + w, y, r)
  ctx.closePath()
  ctx.fillStyle = "red";
  // ctx.strokeStyle = '#F00'
  // ctx.stroke();
  // ctx.clip();
  ctx.fill();
  // ctx.drawImage(img, x, y, w, h);
}